package com.gn.compile;

/**
 *　　这个类只是包含了报错函数以及错误计数器。
 */
public class Err {
    /**
     * 错误计数器，编译过程中一共有多少个错误
     */
    public static int err = 0;

    /**
     * 报错函数
     * @param errcode 错误码
     */
    public static void report(int errcode) {
        //#创建字符数组，长度为Scanner当前字符在当前行中的位置那么长
        char[] s = new char[PL0.lex.cc-2];
        //#将s填充空格
        java.util.Arrays.fill(s, ' ');
        //#使用s创建String
        String space = new String(s);
        //#space只是用来占位
        System.out.print(PL0.lex.line);
        System.out.println("****" + space + "!" + errcode);
        PL0.fa1.println("****" + space + "!" + errcode);

        //#将错误信息填入StringBuffer
        PL0.errorBuffer.append("pl0 compiler:" + PL0.lex.lc + ':' + (PL0.lex.cc-1) + " error:" +
                ErrorReader.getErrorReminder(errcode) + "\n");
        PL0.errorBuffer.append(PL0.lex.line);
        PL0.errorBuffer.append(space + "~^~\n");
        err ++;
    }
}
